{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h1> 5. Interactive Data Analysis </h1>\n",
    "\n",
    "This notebook introduces carrying out interactive data analysis of data in BigQuery using Cloud Datalab.\n",
    "\n",
    "This cell, for example, is a mark-down cell.  Which is why you are seeing text. The cell that follows is a Python code cell. The output of that cell is whatever is printed out from it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "a=3 b=8\n"
     ]
    }
   ],
   "source": [
    "a = 3\n",
    "b = a + 5\n",
    "print(\"a={} b={}\".format(a,b))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Because the markdown comments are HTML, it can even include Javascript, for example to create a table of contents, as shown below:\n",
    "\n",
    "<div id=\"toc\"></div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2> Relative path </h2>\n",
    "\n",
    "I created this notebook in 05_bqnotebook folder of the git repo for the book. So, you might see a path that ends in that. But the path will start with /home/jupyter which is mapped to a local folder if you are running this in a container."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "/home/jupyter/data-science-on-gcp/05_bqnotebook\n"
     ]
    }
   ],
   "source": [
    "!pwd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2> What's installed? </h2>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%pip freeze"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2> Installing dependencies </h2>\n",
    "\n",
    "Regular Python dependencies can be installed using pip"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Collecting google-cloud\n",
      "  Downloading https://files.pythonhosted.org/packages/ba/b1/7c54d1950e7808df06642274e677dbcedba57f75307adf2e5ad8d39e5e0e/google_cloud-0.34.0-py2.py3-none-any.whl\n",
      "Installing collected packages: google-cloud\n",
      "Successfully installed google-cloud-0.34.0\n",
      "Note: you may need to restart the kernel to use updated packages.\n"
     ]
    }
   ],
   "source": [
    "%pip install google-cloud"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%%bash\n",
    "sudo apt-get update\n",
    "sudo apt-get -y install python-mpltoolkits.basemap"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2> Juypter magic </h2>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "This cell will print out a <b> HTML </b> string.\n"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%html\n",
    "This cell will print out a <b> HTML </b> string."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>frac_delayed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.184268</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   frac_delayed\n",
       "0      0.184268"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%bigquery\n",
    "SELECT \n",
    "  COUNTIF(arr_delay >= 15)/COUNT(arr_delay) AS frac_delayed\n",
    "FROM flights.tzcorr"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<h2> Calls to BigQuery </h2>\n",
    "\n",
    "Let's draw a PDF of different arrival delays"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%%bigquery df\n",
    "SELECT ARR_DELAY, DEP_DELAY\n",
    "FROM flights.tzcorr\n",
    "WHERE DEP_DELAY >= 10 AND RAND() < 0.01"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ARR_DELAY</th>\n",
       "      <th>DEP_DELAY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>13426.000000</td>\n",
       "      <td>13509.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>45.492552</td>\n",
       "      <td>50.594493</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>64.572660</td>\n",
       "      <td>62.424103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-52.000000</td>\n",
       "      <td>10.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>10.000000</td>\n",
       "      <td>17.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>26.000000</td>\n",
       "      <td>30.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>58.000000</td>\n",
       "      <td>59.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>1222.000000</td>\n",
       "      <td>1226.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          ARR_DELAY     DEP_DELAY\n",
       "count  13426.000000  13509.000000\n",
       "mean      45.492552     50.594493\n",
       "std       64.572660     62.424103\n",
       "min      -52.000000     10.000000\n",
       "25%       10.000000     17.000000\n",
       "50%       26.000000     30.000000\n",
       "75%       58.000000     59.000000\n",
       "max     1222.000000   1226.000000"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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2ON6i4qKAvVu3LgxsGh8dHQ05s+fj+joaFit1l7VRNQbDGTSnc1mw65du/Dll19CURRomgZFUXDXXXcFesgNDQ1YtGgRysvLAyuGTZ48GevWrcPp06dxxx134KabbsKYMWN6fNyjR49i+PDhva5X0zR89NFHKC8vxyuvvAIhBGw2G5qbmwNrW6uqGljInyhY+DeMdPfhhx+itLQUW7ZswebNm7F161ZkZWV1WF82OTkZjzzySKcPjxw8eDCWLl2KV199tcfH3LNnD9566y3cfvvtva53586dGD16NLZu3YrNmzdjy5YtKCgoCDyeiChaF62nAAAAuUlEQVRUOEIm3ZWVlV3Way0oKMC6des6vJaXl4cXX3wRe/fuvWwfd955J/74xz+iuroaWVlZnR7nn//8J/bt2weXy4WsrCy88MILHUbIa9aswdq1awNfv/322wDa1hy+NGxnzJiBvLy8y+p98803A8+PIwoFLr9JRCQJtiyIiCTBlgVJbf369fjrX//a4bXvfve7vDmD+iW2LIiIJMGWBRGRJBjIRESSYCATEUmCgUxEJAkGMhGRJP4/VA+Y7LLDecsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.set_style(\"whitegrid\")\n",
    "ax = sns.violinplot(data=df, x='ARR_DELAY', inner='box', orient='h')\n",
    "#ax.axes.set_xlim(0, 30)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%%bigquery df\n",
    "SELECT ARR_DELAY, DEP_DELAY\n",
    "FROM flights.tzcorr\n",
    "WHERE RAND() < 0.001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ARR_DELAY</th>\n",
       "      <th>DEP_DELAY</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>6127.000000</td>\n",
       "      <td>6150.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.567325</td>\n",
       "      <td>8.412033</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>36.472406</td>\n",
       "      <td>34.001889</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>-51.000000</td>\n",
       "      <td>-26.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>-13.000000</td>\n",
       "      <td>-5.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>-5.000000</td>\n",
       "      <td>-2.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>7.000000</td>\n",
       "      <td>6.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>453.000000</td>\n",
       "      <td>466.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         ARR_DELAY    DEP_DELAY\n",
       "count  6127.000000  6150.000000\n",
       "mean      3.567325     8.412033\n",
       "std      36.472406    34.001889\n",
       "min     -51.000000   -26.000000\n",
       "25%     -13.000000    -5.000000\n",
       "50%      -5.000000    -2.000000\n",
       "75%       7.000000     6.000000\n",
       "max     453.000000   466.000000"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ARR_DELAY</th>\n",
       "      <th>DEP_DELAY</th>\n",
       "      <th>ontime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>14.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2.0</td>\n",
       "      <td>-9.0</td>\n",
       "      <td>True</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>52.0</td>\n",
       "      <td>59.0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>65.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>255.0</td>\n",
       "      <td>265.0</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   ARR_DELAY  DEP_DELAY  ontime\n",
       "1       14.0       17.0   False\n",
       "2        2.0       -9.0    True\n",
       "5       52.0       59.0   False\n",
       "6       65.0       36.0   False\n",
       "8      255.0      265.0   False"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['ontime'] = df['DEP_DELAY'] < 10\n",
    "df[df['ARR_DELAY'] > 0].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-50, 200)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import seaborn as sns\n",
    "sns.set_style(\"whitegrid\")\n",
    "ax = sns.violinplot(data=df, x='ARR_DELAY', y='ontime', inner='box', orient='h')\n",
    "ax.set_xlim(-50, 200)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-50, 50)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAELCAYAAAAhuwopAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3Xd8VFX+//HXnT6TTHpCC10IvQUQFRsrqBRBXQV1VYpYdtUvKri6u2LB/nOtyyKCimXFBoIQWRFQURcbqAgi0gIkIb1Okmn33t8fkwyJFDPIZFI+z8fjeidTP4zJvOfcc+45iq7rOkIIIUQIDJEuQAghRPMj4SGEECJkEh5CCCFCJuEhhBAiZBIeQgghQibhIYQQImQSHkIIIUIm4SGEECJkEh5CCCFCZop0AeHy/fffY7VaI10GHo+nSdTRFMh7cZi8F4fJe3FYU3gvPB4PgwYN+s37tdjwsFqt9O7dO9JlsGPHjiZRR1Mg78Vh8l4cJu/FYU3hvdixY0eD7ieHrYQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoTMFOkChBCNR1VVqqqqcLlcVFZWUlVVRWVlJdXV1VRVVeF2u4Obx+PB4/Hg9Xrx+XzBze/3o6oqfr8fv6qiaxqarqNpWr3XUhQFo8GAYjBgNBgxmYwYjYHNZDJhMpkwm81UVVWRnJyMxWLBYrFgtVqx2WzBfe1mt9txOBz1NovFEqF3Ukh4CNFM6bpOdXU1xcXFFBcXU1paSklJCWVlZZSWllJWVnZ4Ky+noqICd3U1uq434NkVFJMJDCYwGNEVAyiBva4Y0FFqrlMA5fC+foWg68G9go6i66BrKGgouo6iq+iaiqJroPrRNX/NYxrGaDJhtzuIcjiIdjqJcUYTHR3YnE5n8HJMTAxOp7PePioqCqPR2PA3XNQj4SFEE+T1eiksLKSgoICCgoLg5eLiYgoKApdLSkrwej1HfbxisoDZhmq0ohmt6KZo9OhE9DgLutGKbjSD0YJuNNdcNqMbai4bTBAMhgjQNND9KJof1Nq9D0Xzo6g+0HwoamBD9VKt+ijxeVEKqlFyyzFqXhTNBz4Puuo75ssoioIjKoqYmBjiYmOJi4sjNjb2mFtcXBzR0dEYDHK0HyQ8hGh0uq5TWVnJrl27yM3NJS8vL7jl5uWRm5tHeVnpEY9TjGZ0SxSqyYZmdqDHJwb2Zhu62Y5ustfsrWBoxt+oDQbAgm60gBka3g45Ck1DUT0ofg+oXhS/G8XvRfF7UFQPHr+bUreHg64yjAfyMage8LnRVf8xSjMQ7XQSFxdHQnw8cXFxwdCJr/Nz7eZ0Olts60bCQ4gwqK6u5tChQ/W23NxcsnMCe3d1Vb37K0YTujUavykKzZKC3r4rmiUKvWbTLA4wyvH9kBkM6IZAqIZE9dcETc3mO3zZ7fdQVOZmX/EhjP5MFH81uu8YLUBFIdoZQ1x8HIlHCZdfb7/uN2rKJDyEOAGaplFUVEROTg45OTkcOnSInJwcsrOzyc7JobysrN79FaMZzepEtUShObugJUWjW6LRrIG9brJG7jCROJLRhG6MRrdGN+z+moai1gkZnxvFX43ic+Pxuykud5NZdAij2sCwiYslIT4+2KKJ/dVhtbqXIzVoQMJDiGPwer3BUDh06BDZ2dnk5ORwMCubvNxD+Hx1jqcrCoo1Gp85Gs3aBr3DKWhWJ5rViW6NRjfZJBxaMoMB3eBANzsadv+jhk1g8/jcFFe4ySzJxageQPG70b3Vx3wqm81OTGxMIGjqhEpMTMwR+9rNZrP97n+yhIdotXRdp6ysLBgQh0Mih6zsbIqLCuuNTFKMZjSbE785Gj0hDc3mPBwQlujm3c8gGleoYaNrgX4av+eIsPH6PVT43eTkVWHILsaoecFbfdzBAmazhWink9jYwGCBuqPQzjrrrAaVJOEhWrSqqipyc3PJzc2t1/+QnZ3DodxDeNzuevdXrA78ZieaNQatXerhcLDFSOtBRI5iCAyGCKXvRlPrB07NIIHawKnye8gv8WAoPIRR3Y+ietF9bgkP0fLVthzy8/PrjVjKy8sjp6aD2lVRUe8xgY5pJ35LNFpMN7Tk2nBwolmcYJQ/CdFCGIzoFge6pYGtGwjpHBv5SxFNkqZplJaWUlhYWO98h4KCAvLz88nNy6OwsBCf11vvccFwMDvQbB3QY6PQLNL3IESDhPC3IeEhGlVVVVXwTOiSkpLg2dFFRUUUFxdTWFREQUEhpaUlaKpa/8GKgmKNwm9yoJmj0ON7BoazWqNrhrXKqCUhGkvYwqN379707Nkz+PP8+fNJTU096n2zsrK48cYbWb16dbjKESeZrutUVVVRUVFBRUUF5TXTX5SVlVFeXk55eXlwaozikhJKSkopLS3B7zt6J55itqFbHPiNdnRLPFpKe3RzoMmtmWvOdzDbAmc+CyEiLmzhYbPZWLlyZbieXpwAv9+Px+OpN/md2+2muro6ODFe7Vb7c2VlZXASvYoKFy6XC1eli6rKyuPOkaSYzGCqmR7DZEU3OdETktHNdjSTLdj5V3tmNDLlgxDNSqMetsrKyuLOO++kujowZvmee+5hyJAh9e6za9cu7r77bnw+H5qm8dxzz9GlSxdWrlzJa6+9hs/nY+DAgdx7770ndNp/7QeeXmcWUF3Xg9uvb9M0rd7ttbcdba+q6hGXDxw4gKIowZ9r97WXa2cnPdbe5/OhqmpwNtPa/a9nOvV6vXi9Xjxeb3A21MDmxev14PV4UH99GOh4FCUwP1LN/EeqYq6ZBykK3RGH7rSimyxgDOx1oxXdZEM31VxvkCOizYauYy74GVPpQdCOPi1Hs6d6Ufzemt9ZOVP/+IY16F5h+wt3u91MnDgRgNTUVObPn09iYiIvv/wyVquVzMxMbr/9dpYvX17vcW+++SbXXHMNF110EV6vF03T2LNnD2vWrGHp0qWYzWbuu+8+Vq1axaRJk475+jt37uSmm24K1z+vydEVQ+CD3hSYEyjwYe5AN8eCxYQeUzM7qsEUOHvWYAKDGd14eK8bDk+QZyreh7loV/0X0QKT1CnHHj4umiHFW4XRUx7pMsLKZrMx/qLxrF69GndVcaTLaREa9bCV3+/ngQce4Oeff8ZgMJCZmXnE4wYNGsTzzz9Pbm4uY8aMoUuXLmzatIlt27bxxz/+EQgEU2JiYrhKb5YUXYOak4bq32BAMQYCA4MJXTGhGYxoSs3PwdCoEx5GM4bKYhSf+/DsqooCGNCDl0VLoaje375TMzd+/HhuvvlmdF1n2bJlkS6nRWjUYwtLliwhKSmJlStXomkaAwYMOOI+EyZMYODAgXzyySdcf/313H///ei6zsUXX8wdd9zR4NdKS0vjk08+OYnVn5gdO3bQu3fvBt+/9pBXcLGdmu1oh63qHr6qPWzl8/mCC/jUP3zlqdffUV0d6Ouoqq7C7S6j2lWNx+Nu0FoPitEMNS0c1WhBM1rBZK1p7dTdbIHNbKsZBSX9Gk2ROX8Htv2bIl1GWK1evRpd18nIyIh0KS1Go4ZHRUUFbdu2xWAw8N577x31GPzBgwfp2LEj11xzDYcOHWLnzp2MHDmSP//5z0ydOpXExERKS0uprKykQ4cOjVl+o1AUJbjKmtVqbdTX1nUdj8cTXFmudqU5l8tVr/Pc5XJRUVER3JeVl1NWVkJlqQuPx33M51fMVnSzHdVoq+k0r51O3IEW7EB3yKiqRuZL7gXQovs8XKqXt1d9iG5ygDMu0uW0CI0aHldeeSW33HILK1as4Mwzz8ThOPLMxzVr1rBy5UpMJhNJSUnccMMNxMXFMWvWLKZPn46maZjNZubOndsiwyOSFEUJLvl5orxeb3C4bu1Q3dLSUkpLS9m3bx+KogTO6yguobRkP1VVlUcrBMXiQDXZUc2Ow0N2g9OTR6Gbo+Rs8JNFUfCl9MaX0vAWshCK3rA1KZudUA8XtfQ6moKjvRcej4fS0lKKioqO2AoKCsgvKKSwsIBKl+uI51PMNjRLFH5z4ATBwycMRsvZ5EKcoNenD2vQZ5Z8dRMRZbVaadOmDW3atDnu/TwezxFTlBye0yqf3LzMYy+wZA5MUaJbo4MTHWpWZ2DIpoSLECdEwkM0C1arldTU1GPOUgDgcrkOL+daM5Nubm4uOTmHOJSbRWVB/daLYrKg1UySqNcJFc0aUzPFuvS7iBZM12vOf6mZebfmcsTP8xCisUVHRxMdHU337t2PentlZWW9JWFr1/AILA27s/7UKXUXd7I50a0x9cIFk5xoJpqQ4FrttWt91JmGPbgPTMluVL0oqgfd5z7GLLqTG/SSEh6i1YiKiuKUU07hlFNOOeI2TdMoLi4OBkowWLKzycrOoaLgl3r3V8w2VIsT1RodWPvD6gy2XnSLQ0aLiROn64ETcn3Vv1pD3YOhzrrqBr8HQ01gHGtZWwCLxYozxklsYixxccnBVQVrF3+q3ZxOJ06nMzgDyG+R8BACMBgMJCUlkZSUdNTzj6qqqsjOzq636mBgxcEsCvL2B6ezCTyZEazOQF9LnaVopa+lldJ10Hz1lpwNhEBgjfPa641qzUm+PjdoR59KyGQy4YyJJT4hjvj4lOB65jExMcF93aVnY2NjQx7yv2PHjgbdT8JDiAZwOBz06NGDHj16HHGb3+8nPz+/3lK2hw+JZVF1tL4WSzSqJQrNcnh0WHBaebNdwqUp03VQffVaBfXCoOY6o+rGoHoC648fIwysVhsxsbHEJ8eREN8RgC5duhBXsxZ53X1cXBx2ux2lifxuSHgI8TuZTCbat29P+/btj3q7y+UK9rPULoe7e/duyssryM3bf8QoMRQDii26Zt2S2vNbHOjmKDRLzXkvZrusmX6yaP6j9xEE+w6qa1oGXgx+d6Cv4LfCICkQBrUf+kfb4uPjj2gVNKeh/RIeQoRZdHT0Ea2Wuh8SFRUV9ZbSzc/Pr7diYnHhAfz+I8/8Dpyx78BvrJkCpmZ6+8B0MLY6U8QEpo5p0aPHNC0wR5fqDY4aUupcps5oIsXvwah5Mage8HnQ1WPP9OlwROGMiSGhTeDDvm5rID4+/oiWwe85wba5kfAQIsJqOyqPNUqsdq32goICioqKKCwsDK6+WFJSQmFREUVFxZSWHsLjPs70MCYLmKxoRjOawYxuqJ2BuXY2ZdPhWZYNdWZhNhhBMaIbjDUTZRoCszgrCqDUXAc1//l18YAe2OsaoAcm8dS1wAe+rga+xesaiqYGWgF6zV71B2dyRvOhqH4UzQeqD6Pmx1BzGdWLrh5/WhWj0UhUdDROZwxxcYnE1ukoru0jqHu5tv/AZJKPyGORd0aIJk5RlOA326P1udTl8XiCU8LUXdWxdqXH2jnJAvOSuaismbPM467Gd4xVHiNJURQsVis2mx273Y7DbicqKo6oqCgcDgcOh4OoqCiioqKCQ7XrXq4NZpvN1mT6CloKCQ8hWhCr1UpKSgopKSkhP9bv99dbYbJ2Zua6MzbXzupcO/Nz3QXQ6i6mVvtBrSgKRqMxOOGnwWAITvxpNpsxmUzk5OTQs2dPzGYzVqsVi8WCzWYLXpYP/aZJwkMIAQQ6/mu/sTemHTt20KtXr0Z9TfH7teAeNCGEEOEi4SGEECJkEh5CCCFCJuEhhBAiZBIeQgghQibhIYQQImQSHkIIIUIm4SGEECJkEh5CCCFCJuEhhBAiZBIeQgghQibhIYQQImQSHkIIIUIm4SGEECJkEh5CCCFCJuEhhBAiZBIeQgghQibhIYQQImQSHkIIIUIm4SGEECJkEh5CCCFCJuEhhBAiZA0Oj+zsbP73v/8B4Ha7cblcYStKCCFE09ag8Hj77be59dZbmTt3LgC5ubn85S9/CWthQgghmq4Ghcd//vMfli5dSnR0NABdunShuLg4rIUJIYRouhoUHhaLBYvFEvzZ7/eHrSAhhBBNn6khdxo2bBjPP/88brebL774gjfeeINRo0aFuzYhhBBNVINaHrNnzyYhIYGePXvy1ltvcfbZZzNr1qxw1yaEEKKJalDLw2AwcPnll3P55ZeHux4hhBDNQIPC4+OPP+aZZ54hJycHv9+PrusoisKWLVvCXZ8QQogmqEHh8fDDD/Pcc8+RlpaGoijhrkkIIUQT16A+j7Zt29KzZ08JDiGEEEADWx5z5sxh5syZDB8+vN6Q3WnTpoWtMCGEEE1Xg8Lj6aefxuFw4PF48Pl84a5JCCFEE9eg8MjPz2f16tXhrkUIIUQz0aA+j7POOovPP/883LUIIYRoJhrU8li6dCkvvfQSFosFk8kkQ3WFEKKVa1B4fPfdd+GuQwghRDNy3PDYs2cP3bt3Z/v27Ue9vW/fvmEpSgghRNN23PBYsmQJ8+bN49FHHz3iNkVRePXVV8NWmBBCiKbruOExb948ABYvXozVaq13m8fjCV9VQgghmrQGjbaaMmVKg64TQgjROhy35VFQUEBeXh5ut5uffvoJXdcBcLlcVFdXN0qBQgghmp7jhsfnn3/O8uXLyc3N5ZFHHgleHxUVxe233x724oQQQjRNxw2Piy++mIsvvpgPP/yQ888/v7FqEkII0cQ16DyPc889l1WrVpGdnV1v/fKbb745bIUJIYRouhoUHjfddBNOp5O+ffvWm1VXCCFE69Sg8MjLy+PFF18Mdy1ChEVBQQE//vgj+/btIz8/H5fLhaqq2Gw24uLiaN++PV27dqVXr144nc5IlytEs9Cg8Bg8eDA7d+4kLS0t3PUIcVKUl5ezZs0aPlr7Ibv37AXAoEC8DaJMGooCXlWhzGugyhcYRagoCt27d+P008/gnHPOoVu3bpH8JwjRpDUoPDZv3szy5ctJTU2td9hq1apVYStMiBNRWlrKf/7zH95fuQKP10f3WJXJ3d30iffRMVrFdJQzmyp8CgcrjPxSZmZ74U5ee20Pr776Kqec0p1Jky5m9OjRR5wkK0Rr16DwWLRoEeXl5Xz77bcADBs2TJr3oknx+/289957vPzSi1S73Zzexs3YTm46Rqu/+VinWadPgp8+CX4mda2m3KvwZZ6VT3N38cQTT7D4hYVcNnkKF198MQ6HoxH+NUI0fQ06w3zdunXceeedlJSUUFxczJw5c9iwYUO4axOiQXbt2sWNN1zP/PnzOcVRwcPDS7mhT2WDguNoYiw6Yzq6eXBoCXcPLqOTuZhFixZxxZTJvPvuu7KaphA0sOXx7rvv8tZbbwW/dc2cOZPJkydz9dVXh7U4IY7H7/fz+uuv89prr+I0adzSr4KhyV4U5eQ8v6JA73g/vePL2VNm4p29fv71r3/x3vJl3HjTnxk5ciTKyXoxIZqZBoUHgNFoPOplISLh4MGDPPjgPHbu/IXT23i4umclUWY9bK/XPdbPXweVsbXYzJt7NO655x7Shwzh1v/7Pzp37hy21xWiqWpQeFxyySVcdtlljB49Gggcxrr00kvDWpgQR6PrOitXrmTBv+djxsfN/SoYnuJtlNdWFBiY6KNffAnrs20s/3EL06dP47LLLueaa66R/hDRqjQoPKZNm8bw4cPZvHkzAI888gh9+vQJa2FC/FpeXh7/7/HH+HbzFvon+LiudwXx1vC1No7FaIAxHd2MaOPh7T0O3nzzTdZ9tJabb7mVs88+Ww5liVahwYet+vbtKysHiojQNI1Vq1ax8PkFqD4P1/Z0MaqD56T1bZyoGIvOdb0rObu9h1d/0bjvvvsYPmwYs267jfbt20e2OCHCrMHhIUQk7N27lyf/+U+2bd9OnwQ/0wdVkGLXIl1WPT1i/dyXXsJH2TaWf/cNU6+9lmunTmXy5MmYTPInJlom+c0WTZLL5eKVV15h2bJlOEwa1/VycWa7yLc2jsVogAs6uhme4uX1X6JYtGgR69d9xJ1/vYtevXpFujwhTjoJD9GkaJrGmjVrWPTCQsrKyjmnvZs/dq/CGcaRVCdTglXj1v4VbC4w8+quTP58001MnjKFqVOnylnqokWR8BBNxvbt23nm6af4ZdduesSq3Da0gq4xJ3aiX6SlJ/voFVfMm7sdLF26lP998Tl//8c99OzZM9KlCXFSSHiIiCsvL2fhwoVkZGQQb4Mb+1RwWpuTd7JfpESZdWb0rmRYipcXdx7kpptuZOrUaVx55ZWRLk2I303CQ0TUxo0befKfT1BeXs6FHauZ1LUKewv7rRyQ6OPhYcW8sjOKF198kW++/orJU66IdFlC/C4NmttKiJOtqqqKRx55hLlz5xKrlXL/0FKu6NHygqNWlFnnpr4ubuhdwa4d23nowXls3Lgx0mUJccIkPESj27NnDzOvm8HatR8ysUsV96aX0NnZPPs2QqEocEY7Lw8MLaaNuZK5c+fy1FNP4fF4Il2aECGT8BCNav369fz5phupLD7E3YPKuLRb9VHX2GjJ2jg07hlSygUdq1m5ciV/+fNNZGVlRbosIULSyv5sRaTUniU+b948OjuqeSC9mF7x/kiXFTEmA1zZo4rbBpSTe3AvM6+bwfr16yNdlhANJuEhws7r9fLggw/ywQcfcFY7N3cNKiMuAnNSNUWDk3zMG1pCqq2SefPm8fjjj+N2uyNdlhC/ScJDhFVFRQVzZs9mw4YNXNatkhm9KlvdYarfkmjTuHtQGRM6V7Hmgw+44fqZ7NmzJ9JlCXFc8mcswiY/P59bb7mZbdu2cmOfCiZ0cTf7czfCxWSAy7pXM2dQOWV5B7nxhut555130LSmNY+XELUkPERY7N27l7/8+SZys/Yze0AZp7dtnDU3mrt+CT4eHFZMv7hq5s+fz+zZd5CXlxfpsoQ4goSHOOm+++47brn5L/hcRfxtcCl9E1pvx/iJiLHozOpfwbQ0Fz9t/Z5pU6/l/fffl1aIaFIkPMRJtXbtWubMnk2sUsXcwa3j/I1wUBQ4t4OHh4YV08Xm4sknn2TWrP9j//79kS5NCEDCQ5wkqqrywgsv8PDDD9MzxsM9Q0pIamLrbjRHyXaNvw4qY0YvF3t2/MiM6dNZuHAhVVVVkS5NtHISHuJ3Ky8v529338Ubb7zBue3dzB5YRlQzmUK9OVAUOLu9h8dOLea05EqWLl3K1VddyZo1a1BVadmJyJDwEL/Ltm3buG7GdL799humprmYJkNxwybGojOzTyVz08uI04p47LHHmHndDDZt2oSuS1iLxtVCp6ET4ebz+Xj11Vf5z+uvk2jXuGdIGd2a6dobzc0psX7mDinlq3wL7+7bx913303fPn2YNn066enpKDIeWjQCCQ8Rsq1bt/LkP58gc/8BRrZ1c3XPKuwm+ebbmBQFRrTxMjS5mI2HrLy/9ydmz55N715pXHnVnzj99NMxGo2RLlO0YBIeosFyc3NZvHgx69atI9EOtw0oZ3CSL9JltWomA4zq4OHMdh4+O2Ql48DP3HPPPXRo345LLv0jY8aMwel0RrpM0QJJeIjflJ+fz9KlS1m96n3QVS7qXMWELtVY5Yttk2GuCZGz23n4psDCh1kqzz33HC8sfJ6zzzmXCy+8kIEDB2IwSIeUODkkPMQx7dy5k2XLlrF+/TrQNM5s52Zil2oSbTIEt6kyGgKHs0a08bKv3MjHOTY++3gta9euJTE+jrPOOZeRI0cyYMAAzGZzpMsVzZiEh6jH5XLxySefsHr1Kn7+eSdWE/yhXTUXdHTLeRvNTNcYla4xlVzVo5LvCi18le9h9fvv8d577+Gw2xiSPpRhw4aRnp5Ohw4dpKNdhETCQ+DxePj6669Zv349//viC7w+Hx2iNa7qUc3Ith45Z6OZsxoPt0Y8qottxWa2FrnZuvlzPv/8cwCSkxIZOmw4Q4YMIT09nYSEhAhXLZo6CY9Wqqqqiq+//pqNGzfy5ab/UVXtxmmBM1PcjGzroVuMX2bAbYGsRkhP9pGe7EPXK8mtNvBTsZmfSjx8tn4Na9asAaB7t64MP3UEp556Kv369cNkko8KUZ/8RrQSuq6TmZnJN998w1dffckP3/+AX1VxWmBYopthPb30iffJCX6tiKJAO4dGO4eHP6R60HQXmRVGtheb+bF4F2+/uY+lS5fisNtIHzqMU089leHDh5OSkhLp0kUTIOHRQvn9fjIzM9m2bRtbt27l++82U1xSBkD7aJ3RHdwMTvTSI9aPUQJDAAYFusWodItRmdDFTbUffiox80ORm63ffMZnn30GQMfUDgxJH8qAAQPo378/ycnJ0l/SCkl4tAAVFRXs37+fzMxM9uzZw65ffmHX7l14PIE1NOJtkBbroW8vH30TfCTJaCnRAHZT/UNc2ZVGfiw2s71kHx9m5LBy5UoAEuJi6ZHWi+7du9OlSxc6duxIamqqnF/Swkl4NBMVFRXk5OSQnZ0d3GdnZXHgwH5Ky8qD97OZFDpG+Tg72Ue3GD+nxPpJtmnSfyF+F0WB1GiV1GiVCzu5UbUK9ruM7C4zs6/Cw4GfSvj2m69Q63wvcUY5aNuuPe3at6dt27a0adMmuCUnJxMbGystlmasUcKjpKSEqVOnAlBYWIjBYAiO5njnnXewWCyNUUaT5vf7yc/PJzc3l5ycHA4dOkROTg452Vnk5ORQ4aqsd/84G6RY/Qxw+GmXpNI+SqVDlEqSTcMgf48izIyGw4e4avk1yKs2kltlIK/aSH61m8LiUnbn7uLLagXvr6Y+s5jNJCUmYI+KJjU1lbi4OGJiYoiOjiYqKgq73Y7FYsFisWA2mzGZTJhMJsxmc3CzWq3Y7XZsNptMx9LIGiU84uPjg03c5557DofDwYwZM+rdR9d1dF1v9mfAapqGz+fD6/XidrvJzc1FURRcLhcul4uysjLKysooLi6muLiYgvx8CvLzKCqLfoZfAAAZXklEQVQprTczqlGBJDskW70Mi9VIaauSYtdIsauk2FRs0mYUTYzJAB1qvsRA/WlrdB0qfAqFbgNFbiNFHgMlbgMlHhelRQZ25e2m3Gug0qdzohME221WohwOYmJiiImLJyYmhtjY2GAoxcbGEh0dHdzsdnsweCwWS7P/7GlsEf0I2r9/PzfddBO9e/dmx44dLFq0iIkTJ/Ltt98CkJGRwf/+9z8eeughCgsLue+++8jJycFgMPCPf/yDQYMGHfO5i4uLee211/D7/fU2VVWP+XO9y34/fjVwnerzBfaqiqppaFrNZVVD07TA41QV1R/YN0SURSHOohFn9tHbqpHYWSPRppFsU0m2ayRYNenIrkPXYX22le+LLHjVk9+0qvYrVPkVHCY9LJM8Wow6gxO9jOrgaZWHEBUlMKV8jEU97uzLmg4eVaHar+BWwasp+DQFvwaqHtj7a/da4HaPquBWFar81VT5y6h05eEqUchXTVT4DLi8DQskk9GI2WyqaeEYMRqMGI1GDEZDYK8YUAwGFAUUAv8TdQLPrQf+g6Zrgdeq+TJ8+N+voBgUDErNcxmNNa9jxlTTijKZTLjdbpKSkoItrNpWV+3ttfu6h/sURUHX9d91CLC2VkVR6Nu3b4MeE/Hvr3v37uWxxx6jf//++P3HXuv6wQcf5LrrrmPQoEFkZWVx4403snr16mPev6CggBdffDEcJR+TQdFxmA5vMWaNGItOvFUj0RZoObR1qCRYtWMOif38kIUVmY5Grbs5KPEEDoWEi81mY/z48axevRq3yx2W19haZOG/B+3EW2XAQl1ntXMzsl1gcIdBAftJDnBNB5dPIb/aSH61gUK3kSK3gVKvgXKvQoXPQKVPocqv13z585y0126OFixY0KD7RTw8OnXqRP/+/X/zfps2bWLfvn3Bn8vKynC73dhstqPePz4+nksuuQSgQa0Ov9+H6lfx+X2otS2PmvsEWhz1WxqaVntZQ6tJbU0PfHutOnYGAmA1KcRadGLNfuKtak24aCTZNArdBlQ9cNhKHFbtD+8bMn78eG6++WZ0XWfZsmVhe51qv0K8NWxP3yLoOng1cKsKXlXBV6e1oeoKqgY+LXC9Vwvcp7qmtVLlV6j0Kbj8hkCrw2+iwqdQ5dUJJY7MpkDrwGgwYDQYMBgMGIwGFOXIlkdtzbquoWuBFkeg8VG/5WGobX0YAq0Pk7GmlVPbh2Ox4PX6iIuLq9fqMJlM9Q6r1bY06j734feu/r/yWK2Sui2No11uiIiHh91uD142GAz1ivd4Dn8D0HU9pM71lJQUbr311pNX6HHouh4MIZ/Ph8/nw+Px4Ha72bFjBykpKVRWVlJeXk55eTllZWWUlJRQVFRITn4+P+QXBofV1oq2KCTb/CTb/LSx1+nvsGvEW1tfp/j6LCuv/BIdtudfvXo1uq6TkZERttcAuKRbFaM6tM5vtj4Nit0GitwGijxGSjwGij0GNhdY2ZBjp8JvwuVTqPod/R42qwVndDQxsbHExMbRMS6O2NhYYmNjcTqd9TrkHQ4HNpsNm82G1WoNHh4yGo0RGwW2Y8cOevfuHZHXrltDQ0Q8POoyGAzExsaSmZlJp06d+Oijj4Kjsk477TTeeOON4KitpvAm11IUJfiLVzcMIRCAv1WnruuUl5eTm5tLbm7u4ZFWOTlkZR9kc1YBap0xkGYDJDt02th8tLWrtHUERlulRqktdh6q2g/c78LW5+FnY8bbtDHp2OPC1+dxbvuWGxy6DmVehdwqY81oKwMFbiOFbiOFHjNl7iO//Tujo4iOjqZtx/Z0io+v9+Fe+8H+69FWdUdc1d7HbrcTFRUl06g0oib3Ts+ePZsZM2aQmJhI37598XoD38jvvfde7rvvPpYtW4aqqpx66qnce++9Ea725FAUJfjtKC0t7Yjba4fx1gZKdnZ2zXkeB9menYPXd3hkS7wNOkd56eL00z3GT/dYP9EtIFAUBf6QGphGQ0SerkN+tYE95Sb2lpvY7zKTVWWm0nv4d81gMJCSnES7ru3p0a5dvfM8UlJSSE5Oxmq1NqkvgqLhFD2Ug1zNSFP5hQx3HZqmkZeXx/79+9m3b1/NGeY7OXgwK9gX0yFao1dsYO6qPvG+Fts6EeFV7DGwrcjM9hIzP5dZKakZV2C1WujerTvdTzml3hnmKSkpDWoJNJW/1aagKbwXDa2hybU8RGgMBgPt2rWjXbt2jBgxInh9VVUVO3fuZPv27fzwww98sXUr67MDw0RPifEzMNHL4CQvqVFqqxw6Kn6bX4NdZSa2Fln4odhKlivQYRsfF8vg09MZOHAg/fr1o3PnznK4qBWS/+MtlMPhYPDgwQwePJg//elP+P1+fvrpp8Csul9u4t1du3l3r4MUh056kpvhKV66OWUa9tYur8rA9hIzPxab+anESrUfjEYDA/oPYPyIEQwbNoxu3brJtCJCwqO1MJlMDBgwgAEDBjBjxgwKCwvZtGkTn322kY82b2HNAZVkh85pydWc0c5DO4eci9AalHsVfioxs73YzE+lNgqqA9enJCfxhwsC63mkp6fjcMi5R6I+CY9WKikpiQkTJjBhwgQqKir4/PPPWb9uHau3bOH9/Q56xPkZ1a6aYSleLDJlUIuh1hyK+qHIwo8lVg5UBA5FRTnsDE5P54ohQxg6dCgdO3aU1oU4LgkPgdPp5MILL+TCCy+kqKiItWvXkrF6FQt35LB0L4xqV8XoVDdOi3S0N0eqFliX46t8C1uKbLi8gUNR/fr1Y8yw4aSnp9OzZ0+ZWFCERMJD1JOYmMgVV1zBlClT2LJlC8vefZcVmzax5qCD8zpUM7ZzNU4ZrdUs5FUZ+CTHxhf5dkrd4LDbOP2skYwcOZJhw4YRFRUV6RJFMybhIY5KURTS09NJT08nMzOT119/nQ/Wr+PjQ3Ymdq5kdKpblqxtgnQdtpeY+e9BO1uLzBgMBkaMGMH555/PiBEjsFplbhRxckh4iN/UpUsX/vGPf3DVVVfx/IIFLP36az495GBaWjlpcb8xkZdoFJoO3+RbWHUgigMVBuLjYpk69WLGjx9PUlJSpMsTLZCEh2iwrl278tjjj7Np0yaefupJHt6iMKZjNZd1q5JO9QjRdPg638KKzGhyKhU6dUzlzpuu5LzzzpNF1kRYSXiIkJ122mkMHPgKL7zwAitWrGB7iZW/9C2vWQRINJYfi8y8vTea/RUGOnfqyL2zp3PWWWdJx7doFBIe4oQ4HA5mzZrFaaedxiMPPch9m43MSCtnRBvvbz9Y/C7ZlUbe2BXFj8Vm2rVJ4e+3zmTUqFESGqJRSXiI3+XUU09l8Usvc9+99/Lv7dvZX1HNZd2rWt2U8Y2h2q+wfJ+dj7LsOBwO/vznqUyaNEkOT4mIkPAQv1tSUhJPPf00zz77LKtWrSK3ysiNfSuwyhfhk+abfAuv73ZS6oFx48Zz3XXXERcXF+myRCsm4SFOCrPZzO23306XLl2Y/69/8ch3Rm4bUEasnFj4u5R5FV7ZGc23BRa6d+vKw3PujPisq0KAhIc4iRRF4dJLL6Vt27Y8cP99zNtiYPaAUtrKPFkn5Ot8C0t+ceLRTcycOY3JkyfL7LWiyZDTvMRJd8YZZ/D0M8/iMcUwb0s8e8rlAy8U1X6FhT9F8a9tTjp06cHixS9y1VVXSXCIJkXCQ4RF7969mf/vBUTHp/Dod7F8X2iOdEnNwp4yE/d8G8+mPDvXXHMN8/+9gM6dO0e6LCGOIOEhwiY1NZX5C56nc7dTeOrHGDZky9QYx6LpkLHfxoNbYiEqmWeefZbp06dLa0M0WRIeIqwSEhJ4+plnGT58OEt2RrN0lwNN+tDrKfcqPLk1hrf2RHHGmWfx4ksv079//0iXJcRxSXiIsHM4HDz00MOcc/bZrDlo58mtMVT65EQQgJ9LTNzzbQI7yu3MmjWL+++/H6fTGemyhPhNEh6iUZhMJiZPmcJtt93G9lIr926OJ7Oi9Z4Ioumwcp+dR76PxZHQjn//ewGTJk2SBZhEsyHhIRrVxIkTeeaZZ9HsiTywOY7/HrC1usNYJR6Fx7+PYdk+B+eeO4pFi1+kR48ekS5LiJBIeIhG169fPxa/+BLDR5zOG7ujePS7WPKqWsev4neFZv7xTQK7XHbmzJnDPffcI+uDi2apdfzFiiYnLi6Ohx56iDlz5nDA4+Rv38TzfqYdXws9n9CjwpKdUTy1NYY2Hbtx991/Y9y4cXKYSjRbEh4iYhRFYdy4cbz62mucdsaZvLvXwd+/SeCHFnZOyK4yE//4JoGPc2xcfvnl/HvB87Rr1y7SZQnxu8ggchFxSUlJPPDAPL7++muefeZp/rk1h4GJPq7s4aJdM57axKPC8n0O/nvQTkpyMk8+9DcGDx4c6bKEOCmk5SGajOHDh/Pykle48cYb2VXl5G9fx/PWbgfuZrjS7Y6SQGtjzQE748dP4OUlr0hwiBZFWh6iSTGbzUyZMoXRo0ezaNEiMv77Xzbl27m6Rznpyb5Il/ebKnwKb+12sPGQjXZt2/Dkg39lyJAhkS5LiJNOwkM0SYmJidx1112MHz+eJ594gmd+zGRYsoere1YSZ216Y3t1Hb7ItbB0j5NKv4ErrpjMtddei81mi3RpQoSFhIdo0vr168cLixfz1ltvsWTJy+z4xso1PSqa1HK3WS4jr/wSzc5SE3369OaOO2bTvXv3SJclRFhJeIgmz2QycdVVVzFy5EgefeRh/r19J5sLPFybVkm0OXKtkGo/rNjnYG2WHUdUFLNn38TYsWMxGKQrUbR8Eh6i2ejcuTPP/Ws+S5cuZcmSl/nlGysze5XTL6Fx+0J0Hf6XZ+GtvU7KPHDhhWO5/vrrZVlY0apIeIhmxWQycfXVVzN8+HAeenAej3+fxXmp1UzuXtUoa6bvLjPxxu5odpcZSUvrycP/N4s+ffqE/4WFaGIkPESzlJaWxqLFL/LCCy+wbNkythbbmNaznL4J4RnXm1NpYNleB98UWEmIj+Ovf72B888/Xw5RiVZLwkM0W1arlVtuuYUzzzyT//f4Yzz2vcJpbTxc3r2KRNvJOblwf4WRjAN2vsq3YrNaufbaKUyePFnmoxKtnoSHaPYGDRrESy8v4T//+Q9Ll77BtwVWzm1fzQUd3STZQw8Rtx82F1r4NMfOz6Um7DYrU6ZcwuTJk6VfQ4gaEh6iRbBarUyfPp2xY8eyZMkS1q5dy0fZdvon+Bia7KFPvI9km8bR5iH0aZBdaWRXmZltxWa2l1jwqtCubRtuuGES48ePlwWahPgVCQ/RorRt25a77rqL6dOn8/7777Nu7Ye89HMBAHYzJNs0oowqigIeVaHcb6KomuCaIm1Tkhl30UjOOecc+vfvL30aQhyDhIdokVJSUrjuuuuYMWMG+/btY9u2bezdu5f8/HxcFRWomkq83UHXuDjatWtH165d6d27t8x2K0QDSXiIFk1RFLp160a3bt0iXYoQLYq0yYUQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPIQQQoRMwkMIIUTIJDyEEEKETNF1PXLreIbR999/j9VqjXQZQgjRrHg8HgYNGvSb92ux4SGEECJ85LCVEEKIkEl4CCGECJmEhxBCiJBJeAghhAiZhIcQQoiQSXiE0UsvvURaWhrFxcUA6LrOgw8+yOjRo5kwYQLbt2+PcIXh99hjj3HBBRcwYcIE/vKXv1BeXh68beHChYwePZrzzz+fzz77LIJVNp6NGzdy/vnnM3r0aF544YVIl9OoDh06xNVXX83YsWMZN24cr7zyCgClpaVMmzaNMWPGMG3aNMrKyiJcaeNRVZVJkyZxww03AHDw4EEuu+wyRo8ezaxZs/B6vRGu8NgkPMLk0KFDfPHFF7Rv3z543caNG8nMzGTt2rXMmzeP++67L3IFNpIzzjiD1atXs2rVKrp06cLChQsB2L17NxkZGWRkZLB48WLuv/9+VFWNcLXhpaoqDzzwAIsXLyYjI4PVq1eze/fuSJfVaIxGI3fddRcffPABb731Fm+88Qa7d+/mhRde4LTTTmPt2rWcdtpprSpUX331Vbp37x78+YknnmDq1Kl89NFHxMTE8O6770awuuOT8AiTRx55hDlz5qAoSvC69evXM2nSJBRFYdCgQZSXl5Ofnx/BKsNv5MiRmEyB1Y4HDRpEbm4uEHgvxo0bh8VioWPHjnTu3JmtW7dGstSw27p1K507d6Zjx45YLBbGjRvH+vXrI11Wo0lJSaFv374AREdH061bN/Ly8oJ/FwCTJk1i3bp1kSyz0eTm5vLJJ5/wxz/+EQgcmfjyyy85//zzAbj44oub9O+HhEcYrFu3jpSUFHr16lXv+ry8PNq2bRv8uW3btuTl5TV2eRGzbNkyzjrrLODI96JNmzYt/r1ojf/mY8nKymLHjh0MHDiQoqIiUlJSAEhOTqaoqCjC1TWOhx9+mDlz5mAwBD6GS0pKiImJCX7ZauqfD6ZIF9BcTZ06lcLCwiOunzVrFgsXLuSll16KQFWRcbz34rzzzgNgwYIFGI1GLrroosYuTzQxlZWV3Hrrrfztb38jOjq63m2KotRrrbdUH3/8MQkJCfTr14+vvvoq0uWcEAmPE7RkyZKjXr9z506ysrKYOHEiEGiaXnLJJbzzzju0adMmeNim9rY2bdo0Rrlhdaz3otby5cv55JNPWLJkSfCD4dfvRV5eXot4L46nNf6bf83n83HrrbcyYcIExowZA0BiYiL5+fmkpKSQn59PQkJChKsMvy1btrBhwwY2btyIx+PB5XLx0EMPUV5ejt/vx2QyNfnPBzlsdZKlpaWxadMmNmzYwIYNG2jbti3Lly8nOTmZUaNGsWLFCnRd5/vvv8fpdAab6y3Vxo0bWbx4MQsWLMButwevHzVqFBkZGXi9Xg4ePEhmZiYDBgyIYKXh179/fzIzMzl48CBer5eMjAxGjRoV6bIaja7r/P3vf6dbt25MmzYteH3t3wXAihUr+MMf/hCpEhvNHXfcwcaNG9mwYQNPPvkkI0aM4J///CennnoqH374IQDvvfdek/79kJZHIzr77LP59NNPGT16NHa7nYcffjjSJYXdvHnz8Hq9wQ+LgQMH8sADD9CjRw8uvPBCxo4di9FoZO7cuRiNxghXG14mk4m5c+dy3XXXoaoql156KT169Ih0WY1m8+bNrFy5kp49ewZb5rfffjvXX389s2bN4t1336V9+/Y8/fTTEa40cubMmcNtt93G008/Te/evbnssssiXdIxyay6QgghQiaHrYQQQoRMwkMIIUTIJDyEEEKETMJDCCFEyCQ8hBBChEzCQwghRMgkPISosW7dOtLS0tizZw8QmH9pwIABTJw4kbFjx3LnnXfi8/kA+Oqrr0hPT2fixIlccMEFPPbYY8d97uXLlzNixAgmTZrEmDFjmDFjBlu2bAneftdddzFq1CgmTpzIxIkTmTJlSvBxDzzwwFGfc8eOHaSlpbFx40YgcBLeFVdcwaeffhq8z5o1a5gxY8aJvylCHIOEhxA1Vq9eTXp6OhkZGcHrOnXqxMqVK1m1ahW5ubmsWbMmeNvQoUNZuXIlK1as4OOPP2bz5s3Hff6xY8eyYsUK1q5dy8yZM7nllluCQQVw5513snLlSlauXMmbb74Zcr2KonD//ffz6KOP4vF4qKys5KmnnuLee+8N9a0Q4jdJeAhBYLK+zZs389BDD9ULj1pGo5EBAwYcdZZTm81G7969Q5oBdcSIEVx++eW89dZbJ1Svruv897//5dFHH+WLL77A4/EA0LNnT84991wWLVrE/PnzmThxIp06dTqh1xDieCQ8hCCwvsiZZ55J165diY+PZ9u2bfVu93g8/PDDD5x55plHPLasrIz9+/czbNiwkF6zb9++7N27N/jz448/Hjxsdccddxz3sVu2bCE1NZVOnTpx6qmn8sknnwRvu/nmm1m1ahWfffYZM2fODKkmIRpK5rYSAsjIyOCaa64BAoeXMjIyuOqqqzhw4AATJ04kKyuLc845p94aLd9++y0XXXQR+/fv59prryU5OTmk1/z1zEB33nknF1xwQYPrHTduXLDelStXBhcRcjgcjB07FofDgcViCakmIRpKwkO0eqWlpXz55Zf88ssvKIqCqqooisKVV14Z7PMoLi7miiuuYP369cFZX4cOHcrChQs5ePAgkydP5sILL6R3794Nft2ffvqp3hKkDaWqKmvXrmX9+vU8//zz6LpOaWkpLpcruD6GwWAILjIkRDjIb5do9T788EMmTpzIxx9/zIYNG/j0009JTU2tt/ZGQkICs2fPPur62h07duT6669n0aJFDX7Nr7/+mrfffpvLL7885Ho3bdpEWloan376KRs2bODjjz9mzJgxrWb5VtE0SMtDtHqrV68+om9gzJgxLFy4sN515513Hs899xzffvvtEc8xZcoUXnzxRbKyskhNTT3q63zwwQds3rwZt9tNamoqzz77bL2Wx+OPP86CBQuCP7/zzjtAYF2HusFwxhlnBFdorFvv0qVLg2uBCxFuMiW7EEKIkMlhKyGEECGTw1ZCnETLli3j1VdfrXfdkCFD5EQ90eLIYSshhBAhk8NWQgghQibhIYQQImQSHkIIIUIm4SGEECJkEh5CCCFC9v8BaYQ2x9qy7VMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = sns.violinplot(data=df, x='ARR_DELAY', y='ontime', \n",
    "                    inner='box', orient='h', gridsize=1000)\n",
    "ax.set_xlim(-50, 50)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%%bigquery depdelay\n",
    "SELECT\n",
    "  *\n",
    "FROM (\n",
    "  SELECT\n",
    "    DEP_DELAY,\n",
    "    AVG(ARR_DELAY) AS arrival_delay,\n",
    "    STDDEV(ARR_DELAY) AS stddev_arrival_delay,\n",
    "    COUNT(ARR_DELAY) AS numflights\n",
    "  FROM\n",
    "    `flights.tzcorr`\n",
    "  GROUP BY\n",
    "    DEP_DELAY )\n",
    "WHERE\n",
    "  numflights > 370\n",
    "ORDER BY\n",
    "  DEP_DELAY"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>DEP_DELAY</th>\n",
       "      <th>arrival_delay</th>\n",
       "      <th>stddev_arrival_delay</th>\n",
       "      <th>numflights</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-23.0</td>\n",
       "      <td>-23.978389</td>\n",
       "      <td>11.173010</td>\n",
       "      <td>509</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-22.0</td>\n",
       "      <td>-23.323446</td>\n",
       "      <td>12.355125</td>\n",
       "      <td>708</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-21.0</td>\n",
       "      <td>-22.549515</td>\n",
       "      <td>12.159491</td>\n",
       "      <td>1030</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-20.0</td>\n",
       "      <td>-21.536148</td>\n",
       "      <td>12.062171</td>\n",
       "      <td>1563</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-19.0</td>\n",
       "      <td>-20.628375</td>\n",
       "      <td>12.148920</td>\n",
       "      <td>2185</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   DEP_DELAY  arrival_delay  stddev_arrival_delay  numflights\n",
       "0      -23.0     -23.978389             11.173010         509\n",
       "1      -22.0     -23.323446             12.355125         708\n",
       "2      -21.0     -22.549515             12.159491        1030\n",
       "3      -20.0     -21.536148             12.062171        1563\n",
       "4      -19.0     -20.628375             12.148920        2185"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "depdelay[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAELCAYAAADX3k30AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzt3WuUVOWd7/Hv3rsuXdVXuukuaEC0FQS5iAlmFi6FBAaJIIGjEsbjciLHHDOaSLysOF7WEccLY3ImGYyzkgPjieMyjtFBg5xgMgZmAq5gRDMSQJuoKNgNfaPvddtVtfdzXhRddkNDX2pXV3X1//OqqnbV3k/vLn798N/Pfh5NKaUQQgiRt/RsN0AIIURmSdALIUSek6AXQog8J0EvhBB5ToJeCCHynAS9EELkOQl6IYTIcxL0QgiR5yTohRAiz7my3QCA/fv34/V6s3Z80zSzevxcJOfkTHJO+ifn5UwjdU5M02TevHkDvi8ngt7r9TJz5sysHb+2tjarx89Fck7OJOekf3JezjRS56S2tnZQ75PSjRBC5DkJeiGEyHMS9EIIkedyokYvhMg98Xic+vp6otHogO8bbK14rHD6nBQUFDB58mTcbvewPi9BL4ToV319PcXFxZx//vlomnbW90UiEXw+3wi2LPc5eU6UUrS2tlJfX88FF1wwrH1I6UYI0a9oNEpFRcU5Q15knqZpVFRUDPg/q3ORoBdCnJWEfG5I9/cgQS+EEHlOgl4IIUahtZvfGvR7JeiFEHnlqaeeYu/evcP67M0338zBgwcH9d5XX32VRx99NO33DMXazW8NKeB7yKgbIcSoZVkWhmH0ef7d7343iy3KTRL0QogBvfLHel5+t67fbbZto+tDLw58ff4Urv/i5HO+54477qCxsRHTNPnrv/5r1q5dy2WXXcbatWvZu3cvDz/8MPfddx/XXHMNe/fu5Zvf/CZvvvkmX/7yl/H7/WzdupUf//jHALz99tv87Gc/Y/PmzWzYsIGDBw9imibLli1j/fr1g2rzK6+8wpYtWyguLmbGjBl4PB4A2tra2LBhAydOnADg3nvv5Yorrujz2f/4j//gpz/9KfF4nLKyMv7hH/6B8vJyvvrVr/KLX/yCdsuDbdv8zxv/Gz/6P//CF6ZPAeBIS3BI57U/UroRQuSsjRs38uqrr/LKK6/w/PPP097eTjgcZu7cuWzfvp358+cDUFZWxi9/+UtWrFiR+uwVV1zBgQMHCIfDALz++ussX74cgLvvvptXX32V7du3884773D48OEB29Lc3MzTTz/Niy++yL/+67/y8ccfp7Y98cQTfOMb3+CVV17h6aef7rdc88UvfpGXX36Zbdu2sWLFCp555hl0XedrX/sa27dvB2D/u29zwUXTKR03DkiGfDRuAdDSbfJBQ9dwTqP06IUQA7v+i5PP2vvO5A1Tzz//PL/97W8BaGho4NixYxiGwbJly/q8ryfAe3O5XFx11VX853/+J8uWLWP37t1873vfA+DXv/41L7/8MolEgpaWFo4cOcKMGTPO2ZYDBw7wpS99ifLy8tQxjx49CsDevXv7BH8wGCQUCvX5fGNjI3fffTctLS3EYjEmT06ez+uvv5477riDq1bcwBs7trN0+cohnKHBkaAXQuSkt99+m7179/LSSy/h8/m4+eabU/O8967LA2f9Q7N8+XJeeOEFSktLmT17NkVFRdTV1fGzn/2MrVu3Ulpayv33349pmmm11bZtXn755dQc9P398Xv88ce55ZZbWLJkCW+//Tb/9E//BMDEiROpqKhg/x/38eEH7/O9hx9Pqy39kdKNECIndXd3U1pais/n48iRI+zfv3/I+/jSl77EBx98wMsvv5zq9YdCIXw+H8XFxZw8eZI9e/YMal9z587lnXfeob29nXg8zm9+85vUtiuvvJLnn38+9by/UlB3dzeBQACAbdu29dm2Zs0a/uHR/8WVX/nLM/6IOUGCXgiRkxYuXEgikeCaa67hhz/84aBWUjqdYRh8+ctf5s033+QrX/kKADNmzOCSSy7hmmuu4d577+ULX/jCoPZVVVXFd77zHf7qr/6KG2+8kQsvvDC17aGHHuLQoUOsXLmS5cuXs3Xr1jM+/53vfIfvfve7XHfddWjeQiIxK7Vt8eLFRCIRlq5wvmwDoCmlVEb2PATZXqEm28fPRXJOzjTWzslgf16Z1OxMZzsnp4+gubCyiCMtQT48/AH//OMf8r9/8n/P2BaNWxS4DY5/+jHffr2JSyaW8NK3FrB281s8srBsUL8jqdELIUQG9YT7hZVFAKlRNAVugyMtQf71uZ/x79tf4b6HH++zzUkS9EIIcZo1a9YQi8X6vPaDH/yAiy++eFj7i8ats46Hv+6/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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ax = depdelay.plot(kind='line', x='DEP_DELAY', \n",
    "              y='arrival_delay', yerr='stddev_arrival_delay')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.5/dist-packages/matplotlib/figure.py:98: MatplotlibDeprecationWarning: \n",
      "Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.\n",
      "  \"Adding an axes using the same arguments as a previous axes \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "Z_30 = 0.52\n",
    "depdelay['arr_delay_30'] = (Z_30 * depdelay['stddev_arrival_delay']) \\\n",
    "             + depdelay['arrival_delay']\n",
    "plt.axhline(y=15, color='r')\n",
    "ax = plt.axes()\n",
    "depdelay.plot(kind='line', x='DEP_DELAY', y='arr_delay_30',\n",
    "              ax=ax, ylim=(0,30), xlim=(0,30), legend=False)\n",
    "ax.set_xlabel('Departure Delay (minutes)')\n",
    "ax.set_ylabel('> 30% likelihood of this Arrival Delay (minutes)');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%%bigquery depdelay\n",
    "SELECT\n",
    "  DEP_DELAY,\n",
    "  arrival_delay,\n",
    "  numflights\n",
    "FROM (\n",
    "  SELECT\n",
    "    DEP_DELAY,\n",
    "    APPROX_QUANTILES(ARR_DELAY,\n",
    "      101)[OFFSET(70)] AS arrival_delay,\n",
    "    COUNT(ARR_DELAY) AS numflights\n",
    "  FROM\n",
    "    `flights.tzcorr`\n",
    "  GROUP BY\n",
    "    DEP_DELAY )\n",
    "WHERE\n",
    "  numflights > 370\n",
    "ORDER BY\n",
    "  DEP_DELAY"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.axhline(y=15, color='r')\n",
    "ax = plt.axes()\n",
    "depdelay.plot(kind='line', x='DEP_DELAY', y='arrival_delay',\n",
    "              ax=ax, ylim=(0,30), xlim=(0,30), legend=False)\n",
    "ax.set_xlabel('Departure Delay (minutes)')\n",
    "ax.set_ylabel('> 30% likelihood of this Arrival Delay (minutes)');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%%bigquery depdelay\n",
    "SELECT\n",
    "  DEP_DELAY,\n",
    "  arrival_delay,\n",
    "  numflights\n",
    "FROM (\n",
    "  SELECT\n",
    "    DEP_DELAY,\n",
    "    APPROX_QUANTILES(ARR_DELAY,\n",
    "      101)[OFFSET(70)] AS arrival_delay,\n",
    "    COUNT(ARR_DELAY) AS numflights\n",
    "  FROM\n",
    "    `flights.tzcorr` f\n",
    "  JOIN\n",
    "    `flights.trainday` t\n",
    "  ON\n",
    "    f.FL_DATE = t.FL_DATE\n",
    "  WHERE\n",
    "    t.is_train_day = 'True'\n",
    "  GROUP BY\n",
    "    DEP_DELAY )\n",
    "WHERE\n",
    "  numflights > 370\n",
    "ORDER BY\n",
    "  DEP_DELAY"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.axhline(y=15, color='r')\n",
    "ax = plt.axes()\n",
    "depdelay.plot(kind='line', x='DEP_DELAY', y='arrival_delay',\n",
    "              ax=ax, ylim=(0,30), xlim=(0,30), legend=False)\n",
    "ax.set_xlabel('Departure Delay (minutes)')\n",
    "ax.set_ylabel('> 30% likelihood of this Arrival Delay (minutes)');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%%bigquery eval\n",
    "SELECT\n",
    "  SUM(IF(DEP_DELAY < 16\n",
    "      AND arr_delay < 15, 1, 0)) AS correct_nocancel,\n",
    "  SUM(IF(DEP_DELAY < 16\n",
    "      AND arr_delay >= 15, 1, 0)) AS wrong_nocancel,\n",
    "  SUM(IF(DEP_DELAY >= 16\n",
    "      AND arr_delay < 15, 1, 0)) AS wrong_cancel,\n",
    "  SUM(IF(DEP_DELAY >= 16\n",
    "      AND arr_delay >= 15, 1, 0)) AS correct_cancel\n",
    "FROM (\n",
    "  SELECT\n",
    "    DEP_DELAY,\n",
    "    ARR_DELAY\n",
    "  FROM\n",
    "    `flights.tzcorr` f\n",
    "  JOIN\n",
    "    `flights.trainday` t\n",
    "  ON\n",
    "    f.FL_DATE = t.FL_DATE\n",
    "  WHERE\n",
    "    t.is_train_day = 'False' )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    0.950439\n",
      "dtype: float64\n",
      "0    0.802476\n",
      "dtype: float64\n"
     ]
    }
   ],
   "source": [
    "print(eval['correct_nocancel'] /\n",
    "      (eval['correct_nocancel'] + eval['wrong_nocancel']))\n",
    "print(eval['correct_cancel'] / \n",
    "      (eval['correct_cancel'] + eval['wrong_cancel']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>correct_nocancel</th>\n",
       "      <th>wrong_nocancel</th>\n",
       "      <th>wrong_cancel</th>\n",
       "      <th>correct_cancel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1376187</td>\n",
       "      <td>71762</td>\n",
       "      <td>57699</td>\n",
       "      <td>234412</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   correct_nocancel  wrong_nocancel  wrong_cancel  correct_cancel\n",
       "0           1376187           71762         57699          234412"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eval.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%%bigquery eval\n",
    "SELECT\n",
    "  SUM(IF(DEP_DELAY = 15\n",
    "      AND arr_delay < 15, 1, 0)) AS correct_nocancel,\n",
    "  SUM(IF(DEP_DELAY = 15\n",
    "      AND arr_delay >= 15, 1, 0)) AS wrong_nocancel,\n",
    "  SUM(IF(DEP_DELAY = 16\n",
    "      AND arr_delay < 15, 1, 0)) AS wrong_cancel,\n",
    "  SUM(IF(DEP_DELAY = 16\n",
    "      AND arr_delay >= 15, 1, 0)) AS correct_cancel\n",
    "FROM (\n",
    "  SELECT\n",
    "    DEP_DELAY,\n",
    "    ARR_DELAY\n",
    "  FROM\n",
    "    `flights.tzcorr` f\n",
    "  JOIN\n",
    "    `flights.trainday` t\n",
    "  ON\n",
    "    f.FL_DATE = t.FL_DATE\n",
    "  WHERE\n",
    "    t.is_train_day = 'False' )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>correct_nocancel</th>\n",
       "      <th>wrong_nocancel</th>\n",
       "      <th>wrong_cancel</th>\n",
       "      <th>correct_cancel</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>8368</td>\n",
       "      <td>3146</td>\n",
       "      <td>7370</td>\n",
       "      <td>3157</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   correct_nocancel  wrong_nocancel  wrong_cancel  correct_cancel\n",
       "0              8368            3146          7370            3157"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "eval.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    0.726767\n",
      "dtype: float64\n",
      "0    0.299896\n",
      "dtype: float64\n"
     ]
    }
   ],
   "source": [
    "print(eval['correct_nocancel'] / (eval['correct_nocancel'] + eval['wrong_nocancel']))\n",
    "print(eval['correct_cancel'] / (eval['correct_cancel'] + eval['wrong_cancel']))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Sending to a temporary table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dataset 'cloud-training-demos:temp_dataset' successfully created.\n"
     ]
    }
   ],
   "source": [
    "!bq mk temp_dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%bigquery\n",
    "CREATE OR REPLACE TABLE temp_dataset.delays\n",
    "AS\n",
    "\n",
    "SELECT\n",
    "  DEP_DELAY,\n",
    "  arrival_delay,\n",
    "  numflights\n",
    "FROM (\n",
    "  SELECT\n",
    "    DEP_DELAY,\n",
    "    APPROX_QUANTILES(ARR_DELAY,\n",
    "      101)[OFFSET(70)] AS arrival_delay,\n",
    "    COUNT(ARR_DELAY) AS numflights\n",
    "  FROM\n",
    "    `flights.tzcorr` f\n",
    "  JOIN\n",
    "    `flights.trainday` t\n",
    "  ON\n",
    "    f.FL_DATE = t.FL_DATE\n",
    "  WHERE\n",
    "    t.is_train_day = 'True'\n",
    "  GROUP BY\n",
    "    DEP_DELAY )\n",
    "WHERE\n",
    "  numflights > 370\n",
    "ORDER BY\n",
    "  DEP_DELAY"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [],
   "source": [
    "!bq rm -f temp_dataset.delays\n",
    "!bq rm -f temp_dataset"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Copyright 2019 Google Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
